package com.ruoyi.project.pay;

import com.alibaba.fastjson.JSONObject;
import com.ruoyi.project.channel.channelOrder.domain.ChannelOrder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.math.BigDecimal;

public class BankSmsMessage {
    private static final Logger log = LoggerFactory.getLogger(PayServiceImpl.class);

    public static BigDecimal getAmount(String sender, JSONObject object) {
        log.info("短信内容:"+object.getString("content"));
        log.info("sender:"+sender);
        if (sender.equals("95599")) {
            // 农业银行    【中国农业银行】您尾号9675账户07月30日10:27完成银联入账交易人民币14.97，余额171.40。
            //{"content":"【中国农业银行】林浩于05月22日16:00向您尾号0274账户完成银联入账交易人民币10.00，余额2216.18。","mobilePhone":"13960701497","paySn":"b90e5eead0b472d3256089e1172ab172","sender":"95599","smsTime":"1558512056000"}
            String[] ss = object.getString("content").split("，");
            String[] ss1 = ss[0].split("交易人民币");
            Double amount = Double.valueOf(ss1[1]);
            if (amount < 0) {
                log.error("转出而非转入金额");
                return null;
            }
            return BigDecimal.valueOf(amount);
        } else if (sender.equals("95595")) {
            // 光大银行
            //{"content":"林浩向尾号6742账户08:04转入10元，摘要:网银跨行汇款基金赎回。用手机银行签约电子支付，抢淘票票优惠券。[光大银行]","mobilePhone":"13960701497","paySn":"b90e5eead0b472d3256089e1172ab172","sender":"95599","smsTime":"1558512056000"}
            String[] ss = object.getString("content").split("，");
            String[] ss1 = ss[0].split("存入");
            if (ss1.length < 2) {
                ss1 = ss[0].split("转入");
                if (ss1.length < 2) {
                    log.error("光大银行解析失败");
                    return null;
                }
            }
            String ss2 = ss1[1].replace("元", "");
            Double amount = Double.valueOf(ss2);
            return BigDecimal.valueOf(amount);
        } else if (sender.equals("95533")) {
            // 光大银行
            //{"content":"林浩向尾号6742账户08:04转入10元，摘要:网银跨行汇款基金赎回。用手机银行签约电子支付，抢淘票票优惠券。[光大银行]","mobilePhone":"13960701497","paySn":"b90e5eead0b472d3256089e1172ab172","sender":"95599","smsTime":"1558512056000"}
            String[] ss = object.getString("content").split(",");
            String[] ss1 = ss[0].split("收入人民币");
            if (ss1.length < 2) {
                log.error("建设银行解析失败");
                return null;
            }
            String ss2 = ss1[1].replace("元", "");
            Double amount = Double.valueOf(ss2);
            return BigDecimal.valueOf(amount);
        } else if (sender.equals("95568")) {
            // 民生银行
            // String s = "账户*6318于01月15日20:48存入￥6471.00元，可用余额6472.89元。支付宝转账-支付宝转账-支付宝（中国）网络技术有限公司。【民生银行】";
            String[] ss = object.getString("content").split("，");
            String[] ss1 = ss[0].split("存入￥");
            if (ss1.length < 2) {
                log.error("民生银行解析失败");
                return null;
            }
            String ss2 = ss1[1].replace("元", "");
            Double amount = Double.valueOf(ss2);
            return BigDecimal.valueOf(amount);
        } else if (sender.equals("95555")) {
            // 招商银行
            // String s = "您账户5822于05月14日他行实时转入人民币2100.00，余额3062.77，付方陈春美[招商银行]";
            String[] ss = object.getString("content").split("，");
            String[] ss1 = ss[0].split("转入人民币");
            if (ss1.length < 2) {
                log.error("招商银行解析失败");
                return null;
            }
            String ss2 = ss1[1].replace("元", "");
            Double amount = Double.valueOf(ss2);
            return BigDecimal.valueOf(amount);
        } else if (sender.equals("95588")) {
            // 工商银行    您尾号2773卡7月29日23:55网上银行收入(银联入账)14.99元，余额18.87元。【工商银行】
            // String s = "您尾号5513卡1月15日18:05工商银行收入(跨行转出)5,000元，余额5,003.51元。【工商银行】";
            //
            String[] ss = object.getString("content").split("，");
            String[] ss1;
            if(ss[0].contains("快捷支付收入")){
                ss1 =ss[0].split("[)]");
            }else{
                ss1 = ss[0].split("收入[(]银联入账[)]");
            }
            if (ss1.length < 2) {
                log.error("工商银行解析失败");
                return null;
            }
            String ss2 = ss1[1].replace("元", "").replace(",", "");
            Double amount = Double.valueOf(ss2);
            return BigDecimal.valueOf(amount);
        } else if (sender.equals("95566")) {
            // 中国银行
            // String s = "您的借记卡账户6959，于05月14日网上支付收入人民币6816.00元，交易后余额18917.02【中国银行】";
            String[] ss = object.getString("content").split("，");
            String[] ss1 = ss[1].split("收入人民币");
            if (ss1.length < 2) {
                log.error("中国银行解析失败");
                return null;
            }
            String ss2 = ss1[1].replace("元", "");
            Double amount = Double.valueOf(ss2);
            return BigDecimal.valueOf(amount);
        } else if (sender.equals("95880")) {
            log.error("暂时不支持邮政");
            return null;
            // 邮政储蓄
            // String s = "提现金额10.00元，余额";
//            String[] ss = object.getString("content").split("，");
//            String[] ss1 = ss[0].split("转账");
//            if (ss1.length < 2) {
//                log.error("邮政储蓄解析失败");
//                return null;
//            }
//            String ss2 = ss1[1].replace("元已到账", "");
//            Double amount = Double.valueOf(ss2);
//            return BigDecimal.valueOf(amount);
        } else if (sender.equals("1069800096008")) {
            // 江苏农信
            // String s = "提现金额10.00元，余额";
            String[] ss=  object.getString("content").split("，");
            if(ss.length< 2){
                log.error("江苏农信解析失败");
                return null;
            }
            String[] ss1=  ss[1].split("您收到客户付款");
            if(ss1.length<2){
                log.error("江苏农信解析失败");
                return null;
            }
            String ss2=  ss1[1].replace("元","");
            Double amount = Double.valueOf(ss2);
            return BigDecimal.valueOf(amount);
        } else if (sender.equals("106980196688") || sender.equals("106571260596688") || sender.equals("10628841")) {
            // 贵州农信106571260596688
            // String s = "提现金额10.00元，余额";
//            String[] ss = object.getString("content").split("，");
//            String s = "您尾号，入账收入0.1元，余额0.1元";
            // 【贵州农信】您尾号5504卡，11日14:49二维码商户入账收入0.1元，余额500.1元。
            String[] ss=  object.getString("content").split("，");
            String[] ss1=  ss[1].split("入账收入");
            if(ss1.length<2){
                log.error("贵州农信解析失败");
                return null;
            }
            String ss2=  ss1[1].replace("元","");
            Double amount = Double.valueOf(ss2);
            return BigDecimal.valueOf(amount);
        }else {
            log.error("解析失败");
            return null;
        }
    }
}
